<?php

    include_once '../../../controlador/php/Conexion/Conexion.php';

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of DaoHistorial
 *
 * @author maospina
 */
class DaoHistorial {
    //put your code here
    
    private $Oid;
    private $SsOid;
    private $Hssfecha;
    private $UsuarioRegOid;
    private $UsuarioAsiOid;
    private $UsuarioSolOid;
    private $EstadoOid;
    private $SsDescripcion;
    private $HssObservaciones;
    
    function __construct($Oid, $SsOid, $Hssfecha, $UsuarioRegOid, $UsuarioAsiOid, $UsuarioSolOid, $EstadoOid, $SsDescripcion, $HssObservaciones) {
        $this->Oid = $Oid;
        $this->SsOid = $SsOid;
        $this->Hssfecha = $Hssfecha;
        $this->UsuarioRegOid = $UsuarioRegOid;
        $this->UsuarioAsiOid = $UsuarioAsiOid;
        $this->UsuarioSolOid = $UsuarioSolOid;
        $this->EstadoOid = $EstadoOid;
        $this->SsDescripcion = $SsDescripcion;
        $this->HssObservaciones = $HssObservaciones;
    }

    function getOid() {
        return $this->Oid;
    }

    function getSsOid() {
        return $this->SsOid;
    }

    function getHssfecha() {
        return $this->Hssfecha;
    }

    function getUsuarioRegOid() {
        return $this->UsuarioRegOid;
    }

    function getUsuarioAsiOid() {
        return $this->UsuarioAsiOid;
    }

    function getUsuarioSolOid() {
        return $this->UsuarioSolOid;
    }

    function getEstadoOid() {
        return $this->EstadoOid;
    }

    function getSsDescripcion() {
        return $this->SsDescripcion;
    }

    function getHssObservaciones() {
        return $this->HssObservaciones;
    }

    function setOid($Oid) {
        $this->Oid = $Oid;
    }

    function setSsOid($SsOid) {
        $this->SsOid = $SsOid;
    }

    function setHssfecha($Hssfecha) {
        $this->Hssfecha = $Hssfecha;
    }

    function setUsuarioRegOid($UsuarioRegOid) {
        $this->UsuarioRegOid = $UsuarioRegOid;
    }

    function setUsuarioAsiOid($UsuarioAsiOid) {
        $this->UsuarioAsiOid = $UsuarioAsiOid;
    }

    function setUsuarioSolOid($UsuarioSolOid) {
        $this->UsuarioSolOid = $UsuarioSolOid;
    }

    function setEstadoOid($EstadoOid) {
        $this->EstadoOid = $EstadoOid;
    }

    function setSsDescripcion($SsDescripcion) {
        $this->SsDescripcion = $SsDescripcion;
    }

    function setHssObservaciones($HssObservaciones) {
        $this->HssObservaciones = $HssObservaciones;
    }

    
    
    function MostrarHisrorial(){
        
        $con = new Conexion();
        
        $DatosArea = "SELECT DHN.Oid AS OidHistorial,Hssfecha,LTRIM(RTRIM(USU.usu_nombres))+' '+LTRIM(RTRIM(USU.usu_apellidos)) AS USUARIO_REGISTRA,LTRIM(RTRIM(USU3.usu_nombres))+' '+LTRIM(RTRIM(USU3.usu_apellidos)) AS USUARIO_SOLICITA,
                                case when LTRIM(RTRIM(USU2.usu_nombres))+' '+LTRIM(RTRIM(USU2.usu_apellidos)) is null then 'SIN ASIGNACION' ELSE LTRIM(RTRIM(USU2.usu_nombres))+' '+LTRIM(RTRIM(USU2.usu_apellidos)) END AS USUARIO_ASIGNADO,EST.GeNombe,
                                HssObservaciones,EST.Oid as OidEstado,CAST(Obs.Observacion AS TEXT) AS Observacion,DHN.UsuarioSolOid
                      FROM DnHistorialSs_new DHN LEFT OUTER JOIN usuario AS USU ON DHN.UsuarioRegOid = USU.usu_oid
                                                    LEFT OUTER JOIN usuario AS USU2 ON DHN.UsuarioAsiOid = USU2.usu_oid
                                                    LEFT OUTER JOIN usuario AS USU3 ON DHN.UsuarioSolOid = USU3.usu_oid
                                                    LEFT OUTER JOIN GrlEstado_new AS EST ON DHN.EstadoOid = EST.Oid
                                                    OUTER APPLY(SELECT * 
                                                   FROM DnObservacionCon_new AS O
                                                   WHERE DHN.Oid = O.HistorialOid)AS Obs
                      WHERE DHN.SsOid = ".$this->SsOid;
        
        
        $res = $con ->query($DatosArea);
        
        while ($res2= mssql_fetch_array($res)){
             
            $lista[] = array_map(utf8_encode,$res2);
        }
        print_r(json_encode($lista));
        
        $con->cerrarConexion();
        
    }
    
    function ObservacionesHistorial(){
        
        $con = new Conexion();
        
        /*Se consulta el ultimo oid del historial de x solicitud para ingresarle la observacion*/
        $select = "SELECT TOP 1 Oid AS OidHistorial
                   FROM DnHistorialSs_new
                   WHERE SsOid =".$this->Oid.
                   "ORDER BY Oid DESC";
        $res = $con->query($select);
        
        while($res2 = mssql_fetch_array($res)){
            
            $OidHistorial = $res2['OidHistorial'];
            
        }
        
        $update = "UPDATE DnHistorialSs_new
                   SET HssObservaciones = '".  utf8_decode($this->HssObservaciones)."'
                   WHERE OID =".$OidHistorial;
        $con->query($update);
        
        $con->cerrarConexion();
        
        return $OidHistorial;
        
    }
    
    function EditarHistorial(){
        
        $con = new Conexion();
        
        /*Se extrae la fecha actual del historial en estado con respuesta*/
        
        $select = "SELECT Hssfecha
                   FROM DnHistorialSs_new
                   WHERE Oid = ".$this->Oid;
        $res = $con->query($select);
        
        while($res2 = mssql_fetch_array($res)){
            
            $FechaAnterior = $res2['Hssfecha'];
            
        }
        
        $FechaCambio = date('Y-m-d  H:i:s',strtotime($this->Hssfecha));
        $FechaCambio2 = date('Y-m-d  H:i:s',strtotime($FechaAnterior));
        
        $update = "UPDATE DnHistorialSs_new
                   SET Hssfecha = '".$FechaCambio."',
                       HssFechaCambio = '".$FechaCambio2."'
                   WHERE Oid =".$this->Oid;
        $con->query($update);
        
        $con->cerrarConexion();
        
    }
    
}
